package com.agent.rag.config;

import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.time.Duration;

/**
 * Milvus向量数据库配置
 */
@Slf4j
@Configuration
public class MilvusConfig {
    /**
     * Milvus向量数据库连接地址
     */
    @Value("${milvus.uri}")
    private String uri;
    /**
     * Milvus向量数据库连接token
     */
    @Value("${milvus.token}")
    private String token;

    public MilvusConfig() {
        log.info("Milvus向量数据库配置加载成功！");
    }

    /**
     * 创建Milvus连接配置
     * @return
     */
    @Bean
    public ConnectConfig connectConfig(){
        return ConnectConfig.builder()
                .uri(uri)
                .token(token)
                .build();
    }

    /**
     * 创建Milvus客户端
     * @param config
     * @return
     */
    @Bean
    public MilvusClientV2 milvusClientV2(ConnectConfig config){
        return new MilvusClientV2(config);
    }
}
